(1) Field of the Invention
This invention relates generally to communications and, more particularly, to packet communications systems.
(2) Background Art
The Layer Two Tunneling Protocol (L2TP ) (e.g., see K. Hamzeh, T. Kolar, M. Littlewood, G. Singh Pall, J. Taarud, A. J. Valencia, W. Verthein, W. M. Townsley, B. Palter, A. Rubens xe2x80x9cLayer Two Tunneling Protocol (L2TP)xe2x80x9d, Internet draft, March, 1998) is designed by the Internet Engineering Task Force (IETF) L2TP Working Group to allow internet service providers (ISP) to offer services other than traditional registered Internet Protocol (IP) address-based services. For example, ISPs can now offer virtual dial-up services to their customers via L2TP tunnels (or L2TP connections) allowing them to access corporate intranets.
There are two types of sessions, in an L2TP connection, namely a control session and a data session. For a control session, L2TP defines a retransmission scheme for control messages (also known as control packets) lost during transmission. However, L2TP does not retransmit lost payload messages (also known as payload packets) for a data session. Instead, when payload packets are missing, L2TP defines a sender-initiated recovery algorithm (SIRA) for resetting the xe2x80x9cnext receivedxe2x80x9d (Nr) sequence number at the receiver. In particular, when the transmit window times-out (i.e., the sender has transmitted a predefined number of packets without receiving an acknowledgement of a earlier-sent packet) the sender transmits a payload message that includes a predefined xe2x80x9cReset Srxe2x80x9d (R-bit) indicator, which resets the value for Nr (at the receiver) to either just beyond the first missing packet or to the current send sequence number of the sender.
In accordance with the invention, a Layer 2 Tunneling Protocol (L2TP ) receiver receives packets from an L2TP sender and initiates a recovery process upon detection of a predefined number of lost payload packets.
In an embodiment of the invention, an L2TP connection is established between two packet interfaces, i.e., an L2TP Access Concentrator (LAC) and a L2TP Network Server (LNS). The receiver of at least one of these packet interfaces performs a receiver initiated recovery algorithm (RIRA) when the number of lost or out-of-order payload packets exceeds a predetermined value. In particular, the receiver maintains a number of variables: the xe2x80x9cnext sequence number expected to be receivedxe2x80x9d (Sr) value, and, in accordance with the invention, Snl, which stores the value of the currently received xe2x80x9cnext sentxe2x80x9d (Ns) sequence number from the latest received packet. When the value of Snl greater than Sr+ adjustment, the receiver portion resets the value of Sr to the value of Snl and passes all packets to the upper layer of the protocol stack. The value of the adjustment variable represents the number of packets that may be dropped or out-of-order at the receiver before the receiver initiates recovery. The receiver also sends (either via piggybacking or a zero-length message) an acknowledgement (ACK) packet to inform the sender of the new Sr value at the receiver.